package 栈;

import java.util.LinkedList;
import java.util.Queue;

public class Leedcode225队列实现栈 {
    //q1 作为存在元素的队列
    private Queue<Integer> q1 = new LinkedList<>();
    //q2 作为辅助队列
    private Queue<Integer> q2 = new LinkedList<>();

    public Leedcode225队列实现栈() {

    }

    //一个队列实现栈
    public void push(int x) {
        int size = q1.size();
        //入队列
        q1.offer(x);
        for (int i = 0; i < size; i++) {
            q1.offer(q1.remove());
        }
    }

    public void push1(int x) {
        q2.offer(x);
        //在让q1的元素全部进q2
        while(!q1.isEmpty()){
            q2.offer(q1.poll());
        }
        //交换q1，q2
        Queue<Integer> temp = q1;
        q1 = q2;
        q2 = temp;
    }

    public int pop() {
        return q1.poll();
    }

    public int top() {
        return q1.peek();
    }

    public boolean empty() {
        return q1.isEmpty();
    }
}
